package iso3.pt.model;

import java.util.HashSet;
import java.util.Set;

public class Asignatura
{
	private Integer id;
	private int codigo;
	private String nombre;
	private float creditos;
	private Profesor profesor;
	private Set<Alumno> alumnos; //Ander: yo puse una List
	private Set<Unidad> unidades; //Ander: yo puse una List

	protected Asignatura()
	{
	}

	public Asignatura(Integer id, int codigo, String nombre, float creditos)
	{
		this.id = id;
		this.codigo = codigo;
		this.nombre = nombre;
		this.creditos = creditos;
		this.profesor = new Profesor();
		this.alumnos = new HashSet<Alumno>();
		this.unidades = new HashSet<Unidad>();
	}

	public Set<Alumno> getAlumnos()
	{
		return alumnos;
	}

	public void setAlumnos(Set<Alumno> alumnos)
	{
		this.alumnos = alumnos;
	}

	public void addAlumno(Alumno alumno)
	{
		this.alumnos.add(alumno);
	}

	public void removeAlumno(Alumno alumno)
	{
		this.alumnos.remove(alumno);
	}

	public Set<Unidad> getUnidades()
	{
		return unidades;
	}

	public void setUnidades(Set<Unidad> unidades)
	{
		this.unidades = unidades;
	}

	public void addUnidad(Unidad unidad)
	{
		this.unidades.add(unidad);
	}

	public void removeUnidad(Unidad unidad)
	{
		this.unidades.remove(unidad);
	}

	public Integer getId()
	{
		return id;
	}

	public void setId(Integer id)
	{
		this.id = id;
	}

	public int getCodigo()
	{
		return codigo;
	}

	public void setCodigo(int codigo)
	{
		this.codigo = codigo;
	}

	public String getNombre()
	{
		return nombre;
	}

	public void setNombre(String nombre)
	{
		this.nombre = nombre;
	}

	public float getCreditos()
	{
		return creditos;
	}

	public void setCreditos(float creditos)
	{
		this.creditos = creditos;
	}

	public Profesor getProfesor()
	{
		return profesor;
	}

	public void setProfesor(Profesor profesor)
	{
		this.profesor = profesor;
	}

	public String toString()
	{
		return "(" + this.id + "|" + this.codigo + "|" + this.nombre + "|"
				+ this.creditos + "|" + this.profesor.toString() + ")";
	}
	
	boolean estaMatriculado(Alumno alumno)
	{
		for (Alumno al : alumnos)
		{
			if (al.equals(alumno))
				return true;
		}
		
		return false;
	}
}